package com.xjh.basestudy.designmode.behaviorMode.behaviorMode9_Visitor.p2_batch;


import java.time.LocalDate;

/**
 * @Author XuJianHua
 * @Date 2022/10/5 21:37
 * @Description
 *
 * 果类Candy实现接待者接口Acceptable，顺理成章地成为了“接待者”，并在第9行主动把自己（this）交给了访问者以亮明身份。注意此处的“this”明确了自己的身份属于糖果类Candy实例，而绝非任何泛型类。
 * 当然，其他商品类也以此类推，请读者自己完成代码。我们这样绕来绕去到底能否达到目的呢？不要着急，这里会涉及“双派发”（double dispatch）的概念。

 */
public class Candy extends Product implements Acceptable{
    public Candy(String name, LocalDate producedDate, float price) {
        super(name, producedDate, price);
    }


    @Override
    public void accept(Visitor visitor) {
        visitor.visit(this);// 把自己交给访问者
    }


}